{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## **演示0304：贝叶斯公式**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### **条件概率**\n",
    "* 某个随机事件$A$发生的概率，记为：$P(A)$\n",
    "* 两个随机事件$A$和$B$都发生(同时发生)的概率记为：$P(A, B)$或$P(B, A)$\n",
    "* 条件概率：在随机事件$A$发生的前提下，再发生随机事件$B$的概率，记为：$P(B|A)$\n",
    " * 如果$A$、$B$是各自独立的事件，则：$P(A, B) = P(A) \\cdot P(B)$\n",
    " * 如果$A$、$B$不独立，且$P(A)$不为0，则： $P(A, B) = P(A) \\cdot P(B|A)$\n",
    "* 全概率公式\n",
    " * 对于只有两种结果的情形：$ P(B) = P(B|A) \\cdot P(A)+P(B|\\overline A) \\cdot P(\\overline A) $ 其中，$P(B|\\overline A)$ 是指当$A$不发生时$B$发生的概率\n",
    " * 如果$A$是由$A_1, A_2,\\cdots,A_k$ 多种分类组成(而不仅是非此即彼的两种类别)，则全概率公式变为：$ P(B) = P(B|A_1) \\cdot P(A_1) + P(B|A_2) \\cdot P(A_2)+ \\cdots + P(B|A_k) \\cdot P(A_k) $  其中，$P(A_1)+P(A_2)+\\cdots+P(A_k)=1$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### **贝叶斯通用公式**\n",
    "$ P(B|A) = \\dfrac{P(A|B) \\cdot P(B)}{P(A)} $"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### **案例1：患病概率计算**\n",
    ">  \n",
    "* 假设某种病在人群中的发病率是0.001，即1000人中大概会有1个人得病，即有：$ P(\\text{患病}) = 0.1\\% $\n",
    " * 在没有做检验之前，我们预计的患病率为$P(\\text{患病})=0.1\\%$，这个就叫作**先验概率**\n",
    "* 假设现在有一种该病的检测方法，其检测的准确率为95%；即：$P(\\text{显示阳性}|\\text{患病})=95\\% $\n",
    " * 如果真的得了这种病，该检测法有95%的概率会检测出阳性，但也有5%的概率检测出阴性；\n",
    " * 或者反过来说，如果没有得病，采用该方法有95%的概率检测出阴性，但也有5%的概率检测为阳性\n",
    "* 现在我们想知道的是：在做完检测显示为阳性后，某人的患病率$P(\\text{患病}|\\text{显示阳性})$到底是多少，这个称为**后验概率**。\n",
    "* 根据贝叶斯公式，可以得知：  \n",
    "$\\begin{aligned}P(\\text{患病}|\\text{显示阳性})\n",
    "=& \\dfrac{ P(\\text{显示阳性}|\\text{患病}) \\cdot P(\\text{患病}) }{ P(\\text{显示阳性}) } \\\\ \\\\\n",
    "=& \\dfrac{ P(\\text{显示阳性}|\\text{患病}) \\cdot P(\\text{患病}) }{ P(\\text{显示阳性}|\\text{患病}) \\cdot P(\\text{患病})+P(\\text{显示阳性}|\\text{无病}) \\cdot P(\\text{无病}) } \\\\ \\\\\n",
    "=& \\dfrac{95\\% \\cdot 0.1\\%}{95\\% \\cdot 0.1\\% + 5\\% \\cdot 99.9\\%}\\\\ \\\\=&1.86\\% \\end{aligned}$  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### **案例2：新生儿性别概率计算**\n",
    ">  \n",
    "* 假设：一个家庭中，生男孩或生女孩的概率相同，且第二个小孩的性别与第一个小孩的性别无关(彼此独立)。\n",
    "* 列出下列事件：\n",
    " * 样本空间：{ (男，女), (男，男), (女，女), (女，男) }\n",
    " * 设$A$=第一个小孩是女孩。设$B$=第二个小孩是女孩\n",
    " * 根据样本空间的分析，可知：$P(A) = 1/2, P(B) = 1/2$\n",
    " * 因为$A$和$B$是独立事件，所以：$P(A, B) = P(A) * P(B) = 1/4$。这个结果从样本空间中也能看出来\n",
    "* 示例1：如果某家庭生了两个小孩，其中第一个小孩是女孩，那么在这种情况下，第二个小孩是女孩的概率是多少？\n",
    " * $P(\\text{第二个小孩是女孩}|\\text{第一个小孩是女孩})=P(B|A)$，因为$A$和$B$是独立事件，因此$P(B|A) = P(A, B) / P(A) = (1/4) / (1/2) = 1/2$\n",
    " * 从另一个角度来看，因为每个小孩是男或女的概率相同，因此，第二个小孩是女孩的概率当然也是1/2\n",
    "* 示例2：如果某家庭生了两个小孩，并且已知两个小孩中至少有一个是女孩，那么两个小孩都是女孩的概率是多少？\n",
    " * 设$C$=两个小孩都是女孩，$D$=两个小孩中至少有一个是女孩。$C$和$D$并不是彼此独立的\n",
    " * 根据样本空间，$P(C) = 1/4, P(D) = 3/4$\n",
    " * $ P(C | D) = P(D | C) \\cdot P(C) / P(D) = 1 \\cdot (1/4) / (3/4) = 1/3 $"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
